The present invention generally relates to concurrent automated programming of programmable electronic devices, and more particularly to programming and testing multiple device types and patterns and performing circuit board assembly simultaneously in a single in-line programming device.
In the semiconductor industry, a considerable number of electronic devices such as programmable integrated circuit (PIC) devices are provided by vendors in programmable form with blank memories or unspecified connections between arrays of logic. Users can then custom configure or program the electronic devices to perform their intended finction by programming them, transferring or "burning in" a sequence of operating codes into the memory, or by specifying a particular arrangement of gating logic connections.
Numerous manufacturers have developed automated machinery for handling and programming such devices. Such machinery moves blank devices from a source medium (e.g., trays, tubes, tape) to one or more programming sites, carries out the programming operation on each device, and moves programmed devices from the programming sites to an output medium (e.g., trays, tubes, tape). Typical users of automated programming equipment are highly sensitive to system throughput, which is typically measured in correctly programmed devices per hour, and yield, which is typically defined as the percentage of devices which are correctly programmed.
Before any printed circuit board assembly (PCBA) containing a programmable integrated circuit (PIC) can be used, the PIC must be configured, or programmed, so that it may perform its intended function. During programming, a pattern is loaded into the unprogrammed PIC. These patterns may be changed from time to time as the requirements of the function of the PCBA change over time. Also, in some applications, the pattern may be individualized for each PCBA that is assembled.
For years, PICs have been programmed before being assembled onto a printed circuit board using a methodology called off-line programming (OLP). This, however, created some problems in that OLP of the PICs has to be performed prior to assembly. Specialized equipment must also be obtained to perform OLP. Further, OLP has to be scheduled, which may delay the manufacture of PCBAs and create scheduling problems and bottlenecks in the process. Moreover, once the PICs are programmed, they must be stored until the assembly process begins. This storage and related delay typically creates an inventory of programmed PICs. Not only does this inventory cost money, but in the event that a pattern change is required immediately, the inventory of programmed PICs may have to be destroyed, which adds to the cost and creates an additional delay before the assembly of more PCBAs can commence.
To solve these problems, a technique called in-circuit programming (ICP) was developed. ICP allows for a PIC to be programmed after it is placed on a printed circuit board, i.e., after the PCBA is assembled. Thus, the need for an inventory of programmed devices was eliminated, and individualized PICs no longer needed to be matched with the corresponding PCBA because all the PICs are identical (unprogrammed) at assembly time.
However, new problems arose. For example, because it is not feasible to program all PICs in circuit, the designers of the PCBA must choose only devices that are ICP compatible. ICP compatible PICs cost more than similar non-ICP compatible PICs in many cases, so the cost of the PCBA may be higher when using ICP. Additionally, the PCBA design may be more complex to accommodate ICP, so the time to market may be negatively impacted. Furthermore, specialized equipment is required, and software must be written, to perform the programming operation, which also may impact time to market for the PCBA. Since the programming operation may take a number of minutes to perform, a production line may be slowed down waiting for programming to complete. To address this throughput problem, some users may set up several ICP programming stations to service a single PCBA assembly line. However, this solution requires additional equipment, floor space in the factory and capital outlay. Additionally, if the application for the PCBA requires that the PICs be programmed with individualized patterns, it may be necessary to match the individual PICs with their corresponding individual PCBAs. This additional complication adds additional cost and complexity to the assembly operation. Finally, in the event that the PIC fails to program, the entire PCBA will have to be reworked to replace the PIC.
Accordingly, what is needed in the art is a system and methodology for programming PICs and assembling PCBAs without the drawbacks associated with the off-line programming and in-circuit programming techniques.